
package util;

import constantes.Constantes;
import constantes.TipoTransacciones;

import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.JApplet;
import javax.swing.JOptionPane;
import javax.swing.JInternalFrame;

/**
 *
 * @author jramirez
 */
public class Utilitarios {

    public static void MostrarMensajeAlerta(JApplet pApplet, String pMensaje) {
        JOptionPane.showMessageDialog(pApplet, pMensaje, "Alerta",
                JOptionPane.WARNING_MESSAGE);
    }

    public static void MostrarMensajeInformacion(JApplet pApplet, String pMensaje) {
        JOptionPane.showMessageDialog(pApplet, pMensaje,
                "Información", JOptionPane.INFORMATION_MESSAGE);

    }

    public static void MostrarMensajeError(JApplet pApplet, String pMensaje) {
        JOptionPane.showMessageDialog(pApplet, pMensaje,
                "Error", JOptionPane.ERROR_MESSAGE);
    }

    public static void MostrarMensajeAlerta(JInternalFrame pJInternalFrame, String pMensaje) {
        JOptionPane.showMessageDialog(pJInternalFrame, pMensaje, "Alerta",
                JOptionPane.WARNING_MESSAGE);
    }

    public static void MostrarMensajeInformacion(JInternalFrame pJInternalFrame, String pMensaje) {
        JOptionPane.showMessageDialog(pJInternalFrame, pMensaje,
                "Información", JOptionPane.INFORMATION_MESSAGE);


    }

    public static void MostrarMensajeError(JInternalFrame pJInternalFrame, String pMensaje) {
        JOptionPane.showMessageDialog(pJInternalFrame, pMensaje,
                "Error", JOptionPane.ERROR_MESSAGE);
    }

    public static int PreguntarAntesDeContinuar(JInternalFrame pJInternalFrame, String pMensaje, String pTitulo) {
        int codigo = 0;
        codigo = JOptionPane.showConfirmDialog(pJInternalFrame, pMensaje,
                pTitulo, JOptionPane.YES_NO_OPTION);
        return codigo;
    }

    public static String FormatearFechaCadena(Date pDate) {
        String resultado = "";
        String mesCadena = "";
        String diaCadena = "";

        try {
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(pDate);
            int anio = calendar.get(Calendar.YEAR);
            int mes = calendar.get(Calendar.MONTH);
            mes = mes + 1;
            if (mes < 10) {
                mesCadena = "0" + mes;
            } else {
                mesCadena = mes + "";
            }
            int dia = calendar.get(Calendar.DAY_OF_MONTH);
            if (dia < 10) {
                diaCadena = "0" + dia;
            } else {
                diaCadena = dia + "";
            }

            resultado = anio + mesCadena + diaCadena;
        } catch (Exception ex) {
        }

        return resultado.trim();
    }

    public static String FormatearHoraCadena(Date pDate) {
        String resultado = "";
        String horaCadena = "";
        String minutoCadena = "";

        try {
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(pDate);
            int minuto = calendar.get(Calendar.MINUTE);
            int hora = calendar.get(Calendar.HOUR_OF_DAY);


            if (hora < 10) {
                horaCadena = "0" + hora;
            } else {
                horaCadena = hora + "";
            }

            if (minuto < 10) {
                minutoCadena = "0" + minuto;
            } else {
                minutoCadena = minuto + "";
            }

            resultado = horaCadena + minutoCadena;
        } catch (Exception ex) {
        }

        return resultado.trim();
    }

    public static String FormatearFechaCadena(Date pDate, String pSeparador) {
        String resultado = "";
        String mesCadena = "";
        String diaCadena = "";

        try {
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(pDate);
            int anio = calendar.get(Calendar.YEAR);
            int mes = calendar.get(Calendar.MONTH);
            mes = mes + 1;
            if (mes < 10) {
                mesCadena = "0" + mes;
            } else {
                mesCadena = mes + "";
            }
            int dia = calendar.get(Calendar.DAY_OF_MONTH);
            if (dia < 10) {
                diaCadena = "0" + dia;
            } else {
                diaCadena = dia + "";
            }

            resultado = diaCadena + pSeparador + mesCadena + pSeparador + anio;
        } catch (Exception ex) {
        }

        return resultado.trim();
    }

    public static Date FechaMaximaDeSeleccion() {
        Date date = null;
        try {
            date = new Date();
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(date);
            int anio = calendar.get(Calendar.YEAR);
            anio = anio - 18;
            calendar.set(anio, calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE));
            date = calendar.getTime();
        } catch (Exception ex) {
        }
        return date;
    }

    public static Date ConvertirCadenaFecha(String pFechaCadena) {
        Date date = null;
        int anio = 0;
        int mes = 0;
        int dia = 0;
        try {
            anio = Integer.parseInt(pFechaCadena.substring(0, 4));
            mes = Integer.parseInt(pFechaCadena.substring(4, 6)) - 1;
            dia = Integer.parseInt(pFechaCadena.substring(6, 8));
            Calendar calendar = new GregorianCalendar();
            calendar.set(anio, mes, dia);
            date = calendar.getTime();
        } catch (Exception ex) {
        }
        return date;
    }

    public static String FormatearFechaParaListar(String pFecha) {
        String fecha = "";
        String anio = "";
        String mes = "";
        String dia = "";
        try {
            anio = pFecha.substring(0, 4);
            mes = pFecha.substring(4, 6);
            dia = pFecha.substring(6, 8);

            fecha = dia + "/" + mes + "/" + anio;

        } catch (Exception ex) {
        }
        return fecha;
    }

    public static String FormatearPerfilEmpleado(String pPerfil) {

        String resultado = "";
        try {
            int perfil = Integer.parseInt(pPerfil);
            if (perfil == Constantes.perfilAdministrador) {
                resultado = "Administrador";
            }
            if (perfil == Constantes.perfilVendedor) {
                resultado = "Empleado";
            }
        } catch (Exception ex) {
        }
        return resultado;
    }

    public static String FormatearCategotria(int pCategoria) {

        String resultado = "";
        try {
            
        	switch (pCategoria) {
			case 0:
				resultado="Carnes";
				break;
			case 1:
				resultado="Embutidos";
				break;
			case 2:
				resultado="Pastas";
				break;
			case 3:
				resultado="Productos de limpieza";
				break;
			case 4:
				resultado="Lacteos";
				break;
			case 5:
				resultado="Especias";
				break;

			
			}
        	
        } catch (Exception ex) {
        }
        return resultado;
    }
    
    public static String FormatearUnidadMedida(int pUnidad) {

        String resultado = "";
        try {
            
        	switch (pUnidad) {
			case 0:
				resultado="Unidad";
				break;
			case 1:
				resultado="Kilogramo";
				break;
			case 2:
				resultado="Bolsa";
				break;
			case 3:
				resultado="Caja";
				break;
			}
        	
        } catch (Exception ex) {
        }
        return resultado;
    }
 

    public static String PeriodoActual() {

        Date fechaActual = new Date();
        String resultado = "";
        try {
            resultado = FormatearFechaCadena(fechaActual);
            resultado = resultado.substring(0, 6);
        } catch (Exception ex) {
        }

        return resultado;
    }

    public static String FechaActual() {

        Date fechaActual = new Date();
        String resultado = "";
        try {
            resultado = FormatearFechaCadena(fechaActual);
        } catch (Exception ex) {
        }

        return resultado;
    }

    public static String ObtenerDescripcionTipoTransacc(int pCodigo) {
        String descripcion = "";
        try {
            switch (pCodigo) {
                case 0:
                    descripcion = TipoTransacciones.DESCRIPCION_TIPO_DEPOSITO_NUEVOS_SOLES;
                    break;
                case 1:
                    descripcion = TipoTransacciones.DESCRIPCION_TIPO_RETIRO_NUEVO_SOLES;
                    break;
                case 2:
                    descripcion = TipoTransacciones.DESCRIPCION_TIPO_CONSULTA_SALDOS;
                    break;
                case 3:
                   descripcion = TipoTransacciones.DESCRIPCION_TIPO_CONSULTA_MOVIMIENTOS;
                    break;
                case 4:
                   descripcion = TipoTransacciones.DESCRIPCION_TIPO_PAGO_LUZ;
                    break;
                case 5:
                    descripcion = TipoTransacciones.DESCRIPCION_TIPO_PAGO_AGUA;
                    break;
                case 6:
                   descripcion = TipoTransacciones.DESCRIPCION_TIPO_PAGO_TELEFONO;
                    break;
                case 7:
                    descripcion = TipoTransacciones.DESCRIPCION_TIPO_TRANSFERENCIA_DINERO;
                    break;
                case 8:
                   descripcion = TipoTransacciones.DESCRIPCION_TIPO_CAMBIO_CLAVE;
                    break;
            }

        } catch (Exception ex) {
        }
        return descripcion;
    }
    
    
    public static String FormatearEstadoEmpleado(String pEstado) {

        String resultado = "";
        try {
            int estado = Integer.parseInt(pEstado);
            if (estado == Constantes.EMPLEADO_HABILITADO) {
                resultado = "Habilitado";
            }
            if (estado == Constantes.EMPLEADO_DESHABILITADO) {
                resultado = "Deshabilitado";
            }
        } catch (Exception ex) {
        }
        return resultado;
    }
}
